﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WLMCoreLibrary;
using MiWebSite_Core;

namespace MWS_AddDirectory
{
    public partial class _Default : System.Web.UI.Page
    {
        WebSiteMainConfiguration config = WebSiteMainConfiguration.GetConfig();
        dbConnector ConexionDB;
        protected void Page_Load(object sender, EventArgs e)
        {

            if (Request.QueryString["xml"] != null)
            {
                GetPageXML();
            }
            else
                TransformXML(GeneratePage());

        }

        private MiWebSitePage GeneratePage()
        {
            ConexionDB = new dbConnector(config.Connections[0].value);
            MiWebSitePage pagina = new MiWebSitePage();
            try
            {
                pagina = new MiWebSitePage(ref ConexionDB);
                pagina.Title = "Directorio de " + DeCurrentDomain.Ciudad;
                pagina.DomainName = DeCurrentDomain.DomainName;
                pagina.DomainID = DeCurrentDomain.IdentificadorDominio;

                AnuncioCollection anuncios;
                if (Request["buscar"] != null)
                {
                    string strBusqueda = Request["buscar"];
                    pagina.Title = strBusqueda + " - " + pagina.Title;
                    BusquedaRegistro busqueda = new BusquedaRegistro(strBusqueda, ref ConexionDB);
                    if (busqueda.id == 0)
                    {
                        busqueda = new BusquedaRegistro(ref ConexionDB);
                        busqueda.busqueda = strBusqueda;
                    }
                    busqueda.conteo++;
                    busqueda.Save();
                    anuncios = new AnuncioCollection(strBusqueda, 50, ref ConexionDB);
                }
                else
                {
                    if (Request["tag"] != null)
                    {
                        anuncios = new AnuncioCollection(new Tag(Request["tag"], true, ref ConexionDB), 50, ref ConexionDB);
                    }
                    else
                    {
                        if (DeCurrentDomain.SubDomain == "www")
                            anuncios = new AnuncioCollection(50, ref ConexionDB);
                        else
                        {
                            Categoria categoria = new Categoria(DeCurrentDomain.SubDomain, true, ref ConexionDB);
                            anuncios = new AnuncioCollection(categoria, 50, ref ConexionDB);
                            pagina.Title = categoria.nombreCategoria + " - " + pagina.Title;
                        }
                    }
                }
                pagina.Contenido = WLMFunctions.SerializeObject(anuncios);

            }
            catch (Exception ex)
            {

            }
            ConexionDB.CloseConnection();
            return pagina;
        }

        private void TransformXML(MiWebSitePage pagina)
        {
            List<ParametroTransformacionXML> parametros = FuncionesDirectorio.GetTransformationParameters();
            parametros.Add(new ParametroTransformacionXML("isHome", "true"));
            if (Request["buscar"] != null)
                parametros.Add(new ParametroTransformacionXML("palabraBusqueda", Request["buscar"]));
            if (DeCurrentDomain.SubDomain != "www")
            {
                ConexionDB = new dbConnector(config.Connections[0].value);
                parametros.Add(new ParametroTransformacionXML("subDomainSystemName", new Categoria(DeCurrentDomain.SubDomain, true, ref ConexionDB).nombreCategoria));
                ConexionDB.CloseConnection();
            }
            string HTMLPagina = WLMFunctions.TransformXML(pagina, config.Settings["siteURL"].value + config.Settings["skinPath"].value + "index.xsl", parametros);
            Response.Write(HTMLPagina);
            Response.End();
        }

        private void GetPageXML()
        {
            Response.Clear();
            Response.ContentType = "text/xml";
            Response.HeaderEncoding =System.Text. Encoding.UTF8;
            string xmlportada = WLMFunctions.SerializeObject(GeneratePage(), true);
            Response.Write(xmlportada);
            Response.End();


        }


       

        
    }
}